home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 11.5 KB | 310 lines | [TEXT/MPS ] |
- (*
- File: Components.mod
-
- Contains: Component Manager Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE Components;
-
- IMPORT SYSTEM, Types;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- kAppleManufacturer* = LONG("appl"); (* Apple supplied components *)
- kComponentResourceType* = LONG("thng");
-
- kAnyComponentType* = 0;
- kAnyComponentSubType* = 0;
- kAnyComponentManufacturer* = 0;
- kAnyComponentFlagsMask* = 0;
-
- cmpWantsRegisterMessage* = ASH(1, 31);
-
- kComponentOpenSelect* = -1; (* ComponentInstance for this open *)
- kComponentCloseSelect* = -2; (* ComponentInstance for this close *)
- kComponentCanDoSelect* = -3; (* selector # being queried *)
- kComponentVersionSelect* = -4; (* no params *)
- kComponentRegisterSelect* = -5; (* no params *)
- kComponentTargetSelect* = -6; (* ComponentInstance for top of call chain *)
- kComponentUnregisterSelect* = -7; (* no params *)
-
- (* Component Resource Extension flags *)
- componentDoAutoVersion* = ASH(1, 0);
- componentWantsUnregister* = ASH(1, 1);
- componentAutoVersionIncludeFlags* = ASH(1, 2);
- componentHasMultiplePlatforms* = ASH(1, 3);
-
- (* Set Default Component flags *)
- defaultComponentIdentical* = 0;
- defaultComponentAnyFlags* = 1;
- defaultComponentAnyManufacturer* = 2;
- defaultComponentAnySubType* = 4;
- defaultComponentAnyFlagsAnyManufacturer* = defaultComponentAnyFlags + defaultComponentAnyManufacturer;
- defaultComponentAnyFlagsAnyManufacturerAnySubType* = defaultComponentAnyFlags + defaultComponentAnyManufacturer + defaultComponentAnySubType;
-
- (* RegisterComponentResource flags *)
- registerComponentGlobal* = 1;
- registerComponentNoDuplicates* = 2;
- registerComponentAfterExisting* = 4;
-
-
- TYPE
- ComponentDescription* = RECORD
- componentType*: Types.OSType; (* A unique 4-byte code indentifying the command set *)
- componentSubType*: Types.OSType; (* Particular flavor of this instance *)
- componentManufacturer*: Types.OSType; (* Vendor indentification *)
- componentFlags*: LONGINT; (* 8 each for Component,Type,SubType,Manuf/revision *)
- componentFlagsMask*: LONGINT; (* Mask for specifying which flags to consider in search, zero during registration *)
- END;
-
- ResourceSpec* = RECORD
- resType*: Types.OSType; (* 4-byte code *)
- resID*: INTEGER;
- END;
-
- ComponentResource* = RECORD
- cd*: ComponentDescription; (* Registration parameters *)
- component*: ResourceSpec; (* resource where Component code is found *)
- componentName*: ResourceSpec; (* name string resource *)
- componentInfo*: ResourceSpec; (* info string resource *)
- componentIcon*: ResourceSpec; (* icon resource *)
- END;
-
- ComponentResourcePtr* = POINTER TO ComponentResource;
- ComponentResourceHandle* = HANDLE TO ComponentResource (*ΔΔ POINTER TO ComponentResourcePtr*);
-
- ComponentPlatformInfo* = RECORD
- componentFlags*: LONGINT; (* flags of Component *)
- component*: ResourceSpec; (* resource where Component code is found *)
- platformType*: INTEGER; (* gestaltSysArchitecture result *)
- END;
-
- ComponentResourceExtension* = RECORD
- componentVersion*: LONGINT; (* version of Component *)
- componentRegisterFlags*: LONGINT; (* flags for registration *)
- componentIconFamily*: INTEGER; (* resource id of Icon Family *)
- END;
-
- ComponentPlatformInfoArray* = RECORD
- count*: LONGINT;
- platformArray*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF ComponentPlatformInfo;
- END;
-
- ExtComponentResource* = RECORD
- cd*: ComponentDescription; (* registration parameters *)
- component*: ResourceSpec; (* resource where Component code is found *)
- componentName*: ResourceSpec; (* name string resource *)
- componentInfo*: ResourceSpec; (* info string resource *)
- componentIcon*: ResourceSpec; (* icon resource *)
- componentVersion*: LONGINT; (* version of Component *)
- componentRegisterFlags*: LONGINT; (* flags for registration *)
- componentIconFamily*: INTEGER; (* resource id of Icon Family *)
- count*: LONGINT; (* elements in platformArray *)
- platformArray*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF ComponentPlatformInfo;
- END;
-
- ComponentParameters* = (*ΔΔ PACKED*) RECORD
- flags*: CHAR; (* call modifiers*: sync/async, deferred, immed, etc *)
- paramSize*: CHAR; (* size in bytes of actual parameters passed to this call *)
- what*: INTEGER; (* routine selector, negative for Component management calls *)
- params*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT; (* actual parameters for the indicated routine *)
- END;
-
- ComponentRecord* = RECORD
- data*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT;
- END;
-
- Component* = POINTER TO ComponentRecord;
-
- ComponentInstanceRecord* = RECORD
- data*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT;
- END;
-
- ComponentInstance* = POINTER TO ComponentInstanceRecord;
-
- ComponentResult* = LONGINT;
-
- ComponentRoutineProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR cp: ComponentParameters; componentStorage: Types.Handle): ComponentResult;
- ComponentRoutineUPP* = Types.UniversalProcPtr;
-
- CONST
- uppComponentRoutineProcInfo* = $000003F0; (* PROCEDURE (4 byte param, 4 byte param): 4 byte result; *)
-
- PROCEDURE NewComponentRoutineProc*(userRoutine: ComponentRoutineProcPtr): ComponentRoutineUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallComponentRoutineProc*(VAR cp: ComponentParameters; componentStorage: Types.Handle; userRoutine: ComponentRoutineUPP): ComponentResult;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- TYPE
- ComponentRoutine* = ComponentRoutineUPP;
-
- (*
- The parameter list for each ComponentFunction is unique. It is
- therefore up to users to create the appropriate procInfo for their
- own ComponentFunctions where necessary.
- *)
- ComponentFunctionUPP* = Types.UniversalProcPtr;
-
-
- PROCEDURE RegisterComponent*(VAR cd: ComponentDescription; componentEntryPoint: ComponentRoutineUPP; global: INTEGER; componentName: Types.Handle; componentInfo: Types.Handle; componentIcon: Types.Handle): Component;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7001, $A82A;
- (*$END*)
- PROCEDURE RegisterComponentResource*(tr: ComponentResourceHandle; global: INTEGER): Component;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7012, $A82A;
- (*$END*)
- PROCEDURE UnregisterComponent*(aComponent: Component): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7002, $A82A;
- (*$END*)
- PROCEDURE FindNextComponent*(aComponent: Component; VAR looking: ComponentDescription): Component;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7004, $A82A;
- (*$END*)
- PROCEDURE CountComponents*(VAR looking: ComponentDescription): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7003, $A82A;
- (*$END*)
- PROCEDURE GetComponentInfo*(aComponent: Component; VAR cd: ComponentDescription; componentName: Types.Handle; componentInfo: Types.Handle; componentIcon: Types.Handle): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7005, $A82A;
- (*$END*)
- PROCEDURE GetComponentListModSeed*(): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7006, $A82A;
- (*$END*)
- (* Component Instance Allocation and dispatch routines *)
- PROCEDURE OpenComponent*(aComponent: Component): ComponentInstance;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7007, $A82A;
- (*$END*)
- PROCEDURE CloseComponent*(aComponentInstance: ComponentInstance): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7008, $A82A;
- (*$END*)
- PROCEDURE GetComponentInstanceError*(aComponentInstance: ComponentInstance): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $700A, $A82A;
- (*$END*)
- (* Direct calls to the Components *)
- PROCEDURE ComponentFunctionImplemented*(ci: ComponentInstance; ftnNumber: INTEGER): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $2, $FFFD, $7000, $A82A;
- (*$END*)
- PROCEDURE GetComponentVersion*(ci: ComponentInstance): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $0, $FFFC, $7000, $A82A;
- (*$END*)
- PROCEDURE ComponentSetTarget*(ci: ComponentInstance; target: ComponentInstance): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $2F3C, $4, $FFFA, $7000, $A82A;
- (*$END*)
- (* Component Management routines *)
- PROCEDURE SetComponentInstanceError*(aComponentInstance: ComponentInstance; theError: Types.OSErr);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $700B, $A82A;
- (*$END*)
- PROCEDURE GetComponentRefcon*(aComponent: Component): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7010, $A82A;
- (*$END*)
- PROCEDURE SetComponentRefcon*(aComponent: Component; theRefcon: LONGINT);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7011, $A82A;
- (*$END*)
- PROCEDURE OpenComponentResFile*(aComponent: Component): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7015, $A82A;
- (*$END*)
- PROCEDURE CloseComponentResFile*(refnum: INTEGER): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7018, $A82A;
- (*$END*)
- (* Component Instance Management routines *)
- PROCEDURE GetComponentInstanceStorage*(aComponentInstance: ComponentInstance): Types.Handle;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $700C, $A82A;
- (*$END*)
- PROCEDURE SetComponentInstanceStorage*(aComponentInstance: ComponentInstance; theStorage: Types.Handle);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $700D, $A82A;
- (*$END*)
- PROCEDURE GetComponentInstanceA5*(aComponentInstance: ComponentInstance): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $700E, $A82A;
- (*$END*)
- PROCEDURE SetComponentInstanceA5*(aComponentInstance: ComponentInstance; theA5: LONGINT);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $700F, $A82A;
- (*$END*)
- PROCEDURE CountComponentInstances*(aComponent: Component): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7013, $A82A;
- (*$END*)
- (* Useful helper routines for convenient method dispatching *)
- PROCEDURE CallComponentFunction*(VAR params: ComponentParameters; func: ComponentFunctionUPP): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $70FF, $A82A;
- (*$END*)
- PROCEDURE CallComponentFunctionWithStorage*(storage: Types.Handle; VAR params: ComponentParameters; func: ComponentFunctionUPP): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $70FF, $A82A;
- (*$END*)
- PROCEDURE DelegateComponentCall*(VAR originalParams: ComponentParameters; ci: ComponentInstance): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7024, $A82A;
- (*$END*)
- PROCEDURE SetDefaultComponent*(aComponent: Component; flags: INTEGER): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $701E, $A82A;
- (*$END*)
- PROCEDURE OpenDefaultComponent*(componentType: Types.OSType; componentSubType: Types.OSType): ComponentInstance;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7021, $A82A;
- (*$END*)
- PROCEDURE CaptureComponent*(capturedComponent: Component; capturingComponent: Component): Component;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $701C, $A82A;
- (*$END*)
- PROCEDURE UncaptureComponent*(aComponent: Component): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $701D, $A82A;
- (*$END*)
- PROCEDURE RegisterComponentResourceFile*(resRefNum: INTEGER; global: INTEGER): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7014, $A82A;
- (*$END*)
- PROCEDURE GetComponentIconSuite*(aComponent: Component; VAR iconSuite: Types.Handle): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7029, $A82A;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END Components.
-